
//递归求解汉诺塔问题
//    若有 n 个要移动的盘，则需要移动 (2^n)-1次

public class Test_1 {

    public static void move(char pos1,char pos2){
        System.out.print(pos1 + "->" + pos2 + " ");
    }

    public static void hanoi(int n,char pos1,char pos2,char pos3){
        if(n == 1){
            move(pos1,pos3);
        }
        else{
            hanoi(n - 1,pos1,pos3,pos2);
            move(pos1,pos3);
            hanoi(n - 1,pos2,pos1,pos3);
        }
    }

    public static void main(String[] args) {
        hanoi(1,'A','B','C');
        System.out.println();

        hanoi(2,'A','B','C');
        System.out.println();

        hanoi(3,'A','B','C');
        System.out.println();
    }

}
